The universal serial bus (hereinafter referred to as USB) is an interface which can provide enhanced versatility and expandability in connecting a personal computer to a plurality of peripheral devices. The enhanced versatility and expandability have been achieved by applying a USB cable in common as well as a standardized protocol in respect of peripheral devices such as input devices including keyboards and mice, communication devices including modems, and other peripheral devices including cameras and printers which conform to the USB specification (hereafter simply referred to as USB devices).
Moreover, even when a personal computer has restricted USB ports in number, it is possible to connect a multiplicity of peripheral devices (127 maximum) using USB hubs. Data transmission is repeated through this USB when, for example, an image data stored in an external hard disk is output to a printer or transmitted through a modem. As for this data transfer, there have been provided various transfer methods, which include control transfer, bulk transfer, interrupt transfer and isochronous transfer.
Through the USB, client software in a host computer (driver for a device) and a USB device communicate with each other in one-to-one correspondence. Accordingly, when a plurality of USB devices are connected, a particular USB device exclusively occupies the USB while the data transfer is carried out between the host computer and the USB device concerned. On completion of the data transfer, data transfer from/to another USB device becomes possible. Thus time-division data transfer is carried out.
When a new USB device is to develop, verification of the device operation is necessary in a USB connection condition. By monitoring the data in transfer between a host computer and the USB device, it becomes possible to analyze whether or not the device is working normally, or in what situation a malfunction has occurred.
A USB protocol analyzer has been proposed for a tool to trace and analyze those data transferred on a USB. The USB protocol analyzer is connected in the middle of the USB cable connecting a host computer to the USB device, so as to extract data transferred on the USB cable, record the data, and output the data on a display screen or the like.
When performing USB analysis using the USB protocol analyzer, there may arise a case in which it becomes unable to identify the device currently communicating with the host computer. The host computer assigns an address uniquely to each USB device, and this address is added to the transfer data. Accordingly, the USB protocol analyzer can detect to which address the data is transferred. However, it is not possible for the USB protocol analyzer to detect which USB device is transferring the data. In particular, when a large number of USB devices are connected, it becomes difficult in the analysis process to identify on which USB device the data transfer is in progress.
When a USB device is connected, the host computer assigns an address to this newly connected USB device, acquires information of the USB device, and thereafter monitors the USB device information corresponding to the address of interest. This acquisition of the device information in the connection stage is referred to as initialization operation, or bus enumeration operation. This operation is carried out when connecting the USB device, initiating the host computer, or the like. Accordingly, the host computer can distinguish the USB device using the assigned address. On the other hand, there may be a case that the USB protocol analyzer is unable to obtain the relation of correspondence between the address and the device, as well as the device information. This causes the USB protocol analyzer unable to identify the USB device corresponding to the data being transferred.
Further, the data transfer specifications are different device by device in the USB. This makes data analysis difficult when only transfer data is traced and output for display, which results in impeding effective bus analysis.